Django প্রজেক্টের settings.py ফাইল হল আপনার প্রজেক্টের কনফিগারেশন ফাইল, যেখানে সমস্ত গুরুত্বপূর্ণ সেটিংস এবং প্যারামিটারগুলি সংরক্ষিত থাকে। এই ফাইলে Django অ্যাপ্লিকেশনটির কার্যক্রম পরিচালনার জন্য প্রয়োজনীয় বিভিন্ন কনফিগারেশন নির্দেশনা দেওয়া হয়, যেমন ডেটাবেস সেটিংস, অ্যাপ কনফিগারেশন, সিকিউরিটি সেটিংস, মিডিয়া এবং স্ট্যাটিক ফাইল কনফিগারেশন, তৃতীয় পক্ষের প্যাকেজ ইত্যাদি।
এটি মূলত আপনার Django অ্যাপ্লিকেশনটির কনফিগারেশন এবং পরিবেশ নির্ধারণ করে। চলুন, settings.py ফাইলের কিছু গুরুত্বপূর্ণ অংশ বিস্তারিতভাবে আলোচনা করি।
settings.py ফাইলের মূল অংশ
১. BASE_DIR
BASE_DIR সেটিংটি প্রজেক্টের মূল ডিরেক্টরির পথ নির্ধারণ করে। এটি আপনার প্রজেক্টের ফাইল সিস্টেমে অবস্থান জানাতে সাহায্য করে, যাতে অন্যান্য ফাইল বা ডিরেক্টরি সংক্রান্ত পথ গুলি রিলেটিভভাবে নির্ধারণ করা যায়।
BASE_DIR = Path(__file__).resolve().parent.parent
এটি Django প্রজেক্টের রুট ডিরেক্টরি (যেমন myblog/ ফোল্ডার) নির্দেশ করে।
২. DEBUG
DEBUG সেটিংটি আপনার Django অ্যাপ্লিকেশনটি ডেভেলপমেন্ট মোডে চলমান কিনা তা নির্ধারণ করে। যখন DEBUG সঠিকভাবে চালু থাকে (যা ডেভেলপমেন্ট পরিবেশে প্রয়োজন), তখন Django আপনাকে আরও ডিবাগ তথ্য এবং ত্রুটির স্ট্যাক ট্রেস দেখাবে।
DEBUG = True
এটি অবশ্যই উৎপাদন পরিবেশে False সেট করা উচিত। কারণ উৎপাদন পরিবেশে Debug মোড চালু রাখা নিরাপত্তার জন্য ঝুঁকিপূর্ণ।
৩. ALLOWED_HOSTS
ALLOWED_HOSTS হল একটি লিস্ট যেখানে আপনি আপনার অ্যাপ্লিকেশনটি যেসব হোস্ট বা ডোমেইনে চলতে চান তা নির্ধারণ করবেন। এটি নিরাপত্তার জন্য ব্যবহৃত হয়, যেখানে Django শুধুমাত্র নির্দিষ্ট হোস্টগুলির থেকে HTTP অনুরোধ গ্রহণ করে।
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
উৎপাদন পরিবেশে, এখানে আপনার ডোমেইন নাম অন্তর্ভুক্ত করতে হবে, যেমন example.com।
৪. INSTALLED_APPS
INSTALLED_APPS হল অ্যাপ্লিকেশনগুলির একটি তালিকা যেগুলি আপনার Django প্রজেক্টে ব্যবহৃত হবে। এখানে সমস্ত ডিফল্ট Django অ্যাপস (যেমন django.contrib.admin, django.contrib.auth ইত্যাদি) এবং আপনার নিজস্ব অ্যাপ্লিকেশন অন্তর্ভুক্ত থাকবে।
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
এখানে myapp হলো একটি কাস্টম অ্যাপ, যেটি আপনার Django প্রজেক্টে যুক্ত করা হয়েছে।
৫. MIDDLEWARE
MIDDLEWARE একটি তালিকা যেখানে Django অ্যাপ্লিকেশন চলাকালীন যে সমস্ত মধ্যস্থতাকারী প্রক্রিয়া (middleware) ব্যবহৃত হবে তা নির্ধারণ করা হয়। Middleware সাধারণত HTTP অনুরোধ এবং প্রতিক্রিয়া প্রক্রিয়ার মধ্যে কাজ করে, যেমন সেশনের হ্যান্ডলিং, নিরাপত্তা চেক, বা কুকি পরিচালনা।
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
৬. ROOT_URLCONF
ROOT_URLCONF সেটিংটি মূল URL কনফিগারেশন ফাইলের পথ নির্দেশ করে। এটি Django কে জানায় যে কোথায় আপনার URL রুট প্যাটার্নগুলি সংরক্ষিত আছে। সাধারণত এই সেটিংটির মান urls.py ফাইল থাকে।
ROOT_URLCONF = 'myblog.urls'
৭. TEMPLATES
Django একটি টেমপ্লেট ইঞ্জিন ব্যবহার করে, যা HTML ফাইলের মধ্যে Python কোড সংযুক্ত করতে সাহায্য করে। TEMPLATES সেটিংটি Django কে জানায় যে টেমপ্লেটগুলো কোথায় রয়েছে এবং কীভাবে সেগুলো রেন্ডার করা হবে।
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
৮. DATABASES
DATABASES সেটিংটি Django কে জানায় কোন ডেটাবেস ব্যবহৃত হবে এবং সেই ডেটাবেসের সংযোগ বিবরণ কী হবে। ডিফল্টভাবে, Django SQLite ডেটাবেস ব্যবহার করে, কিন্তু আপনি MySQL, PostgreSQL বা অন্য কোনো ডেটাবেস ব্যবহারের জন্য এই সেটিংটি কনফিগার করতে পারেন।
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
এখানে ENGINE হল ডেটাবেসের প্রকার, এবং NAME হল ডেটাবেসের অবস্থান।
৯. STATIC_URL এবং MEDIA_URL
Static files (যেমন CSS, JavaScript, ইমেজ) এবং media files (যেমন ইউজারের আপলোড করা ফাইল) কনফিগার করার জন্য STATIC_URL এবং MEDIA_URL ব্যবহার করা হয়।
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
এছাড়া আপনি static files এর জন্য STATICFILES_DIRS এবং media files এর জন্য MEDIA_ROOT সেটিংসও কনফিগার করতে পারেন।
উপসংহার
settings.py ফাইল Django প্রজেক্টের সব গুরুত্বপূর্ণ কনফিগারেশন সংরক্ষণের জন্য ব্যবহৃত হয়। এটি ডেটাবেস, অ্যাপ কনফিগারেশন, নিরাপত্তা, মিডিয়া ফাইল, এবং অন্যান্য সেটিংস নিয়ন্ত্রণ করে, যা Django অ্যাপ্লিকেশনটির কার্যক্রম সঠিকভাবে পরিচালনা করতে সাহায্য করে। Django প্রজেক্টের পুরো সেটআপ ও কাস্টমাইজেশন মূলত এই ফাইলের মাধ্যমে করা হয়, তাই এটি একেবারে গুরুত্বপূৰ্ণ।
Read more